/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladora;

import Entidades.Cliente;
import Entidades.DiretorRegional;
import Entidades.Gerente;
import Persistencia.PersistenciaCliente;
import Persistencia.PersistenciaoGerente;
import Persistencia.PesistenciaDiretorRegional;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import telas.DiretorGeralView;
import telas.DiretorRegionalView;
import telas.LoginView;
import telas.SenhaView;


/**
 *
 * @author Thalyta
 */
public class LoginPresenter {
    private String aute;
    private  Gerente b;
    private Cliente c;
    private DiretorRegional d ;
    private PesistenciaDiretorRegional diretores = new PesistenciaDiretorRegional();
    private PersistenciaoGerente gerentes = new PersistenciaoGerente();
    private PersistenciaCliente clientes = new PersistenciaCliente();

    public LoginPresenter(final LoginView telalogin) {
        
      telalogin.setVisible(true);
    
       
       
        telalogin.getBtnEntrar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                
                 
               
                       String usuario = telalogin.getTxtUsuario().getText();
                       String  senha = telalogin.getTxtsenha().getText();
                        boolean acesso = telalogin.getCbAcesso().isSelected();
                       
                       
                aute = telalogin.getCbbTipo().getSelectedItem().toString();
                
           
                if("Gerente".equals(aute)){ 
                  b =   gerentes.PesquisaGerente(usuario);
  
                   if (b == null){
                       JOptionPane.showMessageDialog(telalogin, "Usuario não cadastrado");
                      
                   }
                   else {
                               if (acesso == true ) {
                                   final SenhaView telagerente = new SenhaView();
                                   telagerente.setVisible(true);
                                   telagerente.getBtnSalvar().addActionListener(new ActionListener() {
                                       @Override
                                     public void actionPerformed(ActionEvent e) {
                                         
                                           b.setSenha(telagerente.getTxtSenha().getText());
                                           gerentes.gravaGerente();
                                           telagerente.setVisible(false);
                                           LoginPresenter login = new LoginPresenter(telalogin);
                                       }

                                 });
                                
                                   telalogin.setVisible(false);
                                }     
                                else {
                                   b.autentica(usuario, senha);
                                   telalogin.setVisible(false);
                                 }  
                                      }
                   
                }    
                
                
          if("Cliente".equals(aute)){
               
                c = clientes.PesquisaCliente(usuario);
           
                 if (c == null){
                       JOptionPane.showMessageDialog(telalogin, "Usuario não cadastrado");
       
                   }
                   else {
                     
                     if (acesso == true ) {

                                      final SenhaView telagerente = new SenhaView();
                                      telagerente.setVisible(true);
                                      telagerente.getBtnSalvar().addActionListener(new ActionListener() {
                                          @Override
                                          public void actionPerformed(ActionEvent e) {
                                           c.setSenha(telagerente.getTxtSenha().getText());
                                           clientes.gravaCliente();
                                           telagerente.setVisible(false);
                                           LoginPresenter login = new LoginPresenter(telalogin);
                                              } });
                                    
                                           telalogin.setVisible(false);

                                     }    else {     
                                                 c.autentica(usuario, senha);
                                                 telalogin.setVisible(false);
                                               }

                    }  

             
        
        }
                if("Diretor Geral".equals(aute)){
                DiretorGeralView tela = new DiretorGeralView();
                DiretorGeralPresenter contr = new DiretorGeralPresenter(tela);
                  telalogin.setVisible(false);
                }
                
                if ("Diretor Regional".equals(aute)){
                    d = diretores.PesquisaDiretores(usuario);
           
                 if (d == null){
                       JOptionPane.showMessageDialog(telalogin, "Usuario não cadastrado");
       
                   }
                   else {
                     
                     if (acesso == true ) {

                                      final SenhaView telagerente = new SenhaView();
                                      telagerente.setVisible(true);
                                      telagerente.getBtnSalvar().addActionListener(new ActionListener() {
                                          @Override
                                          public void actionPerformed(ActionEvent e) {
                                           d.setSenha(telagerente.getTxtSenha().getText());
                                           diretores.gravaDiretoRegional();
                                           telagerente.setVisible(false);
                                           LoginPresenter login = new LoginPresenter(telalogin);
                                              } });
                                    
                                           telalogin.setVisible(false);

                                     }    else {     
                                                 d.autentica(usuario, senha);
                                                 telalogin.setVisible(false);
                                               }

                    }  

               
              
                  telalogin.setVisible(false);
                  
                  
                }
                
                
               
                
     
               
            }
            
            
  });
        
      telalogin.setVisible(true);
    }
    
}
